//
//  YsCloudFileDownloadModel.h
//  YsCloudFileManageSDK
//
//  Created by 宋宏康 on 2020/2/27.
//

#import <Foundation/Foundation.h>
#import "YsCloudFileDownloadRealmModel.h"
#import <AFNetworking/AFNetworking.h>

NS_ASSUME_NONNULL_BEGIN

@interface YsCloudFileDownloadModel : NSObject
///  初始化方法
/// @param productLoadModel 是否初始化对应的realm对象
- (instancetype)initWithProductDownloadModel:(BOOL)productLoadModel;
// 方便操作(暂停取消)正在下载的文件
@property (nonatomic, strong, nullable) NSURLSessionDataTask *dataTask;
// 请求的url
@property (nonatomic, copy) NSString *requestUrl;
// 总大小
@property (nonatomic, assign) int64_t totalSize;
// 下载的进度
@property (nonatomic, assign) CGFloat progress;
// accountCode
@property (nonatomic, strong,) NSString *accountCode;
// 下载的状态 
// // 是否下载 1.未下载 2.等待中 3.正在下载  4.下载完成  5.暂停 6.下载失败
@property (nonatomic, assign) int downloadStatus;
// 下载文件缓存的路径
@property (nonatomic, copy) NSString *cachePath;
// 下载文件的名字
@property (nonatomic, copy) NSString *customCacheName;
// 下载文件缓存的临时路径
@property (nonatomic, copy) NSString *tmpPath;
// 下载的数据
@property (nonatomic, assign) int64_t downloadSize;
// 文件的后缀名
@property (nonatomic, strong) NSString *lastPathComponent;
// 管理者
@property (nonatomic, strong) AFHTTPSessionManager *manager;
// 参数 
@property (nonatomic, strong) NSDictionary *paramDic;
// 请求的方法
@property (nonatomic, copy) NSString *requestMethod;
// 返回的response
@property (nonatomic, strong, nullable) NSURLResponse *response;
// 错误的信息 
@property (nonatomic, strong, nullable) NSError *error;
/** NSFileHandle */
@property (nonatomic, strong) NSFileHandle *itemFileHandle;
// 任务创建时间
@property  int createTime;
// 任务等待时间
@property (nonatomic, strong) NSString *waitTaskTime;
//  下载进度的block
@property (nonatomic, copy,nullable) void (^downloadProgressBlock)(CGFloat progress);
//  下载信息反馈
@property (nonatomic, copy,nullable) void (^downloadCompletionHandler)(NSError  *_Nullable);
// 下载任务的realm数据库
@property (nonatomic, strong) YsCloudFileDownloadRealmModel *downloadReamModel;

@end

NS_ASSUME_NONNULL_END
